{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "f45361e8",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "权重：[4.17340678]\n",
      "截距：[[2.00347967]]\n",
      "均方误差：9.59\n"
     ]
    },
    {
     "data": {
      "image/png": "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svD1aFhDPTS1OFGYiIiIXAJDDREREbkEhhob8PHxwRtvvMHNMxWCr4fy8DVRFr4eysLXw3bcaqIwERERuS721BAREZFLYKghIiIil8BQQ0RERC6BoaaZDh06hJiYGISEhCAtLe2mSziT7a1ZswYdO3aEp6cnevfujd9//x0AXxslGDx4MDIzMwEAmzdvRteuXdG6dWvMmzdP3sLc0EsvvYTExETjff5+yGPZsmWIjIyEv78/4uPjceLECQB8PWyFoaYZtFotEhMTcffddyMnJwf5+fnGP+DkGMePH8fEiRMxd+5cnDlzBrfddhsmTZrE10YBVqxYgZ9//hkAcPHiRQwdOhRjxozBjh07sGLFCmzatEnmCt3HgQMHsHjxYixcuBAA/3bJ5fjx43jzzTexZs0aHD58GJ06dcKECRP4etiSSE327bffiiEhIeK1a9dEURTFffv2iX/+859lrsq9fP/99+Inn3xivL9x40bRz8+Pr43MLl26JIaFhYm33367mJGRIc6fP1/805/+JOr1elEURfG7774Tx44dK3OV7kGn04n33nuv+Nprrxnb+Pshj6+//locMWKE8f62bdvE8PBwvh42xJ6aZti/fz9iY2Ph7+8PAOjZsyfy8/Nlrsq9JCQkYPLkycb7R44cQZcuXfjayOyFF17AY489htjYWACG35UBAwYY91zr06cP9u7dK2eJbuOf//wnDh48iKioKKxduxZVVVX8/ZBJt27dsHHjRuzbtw+lpaVYvHgxHnzwQb4eNsRQ0wwajQbR0dHG+4IgQKVSoaSkRMaq3FdVVRU++OADTJkyha+NjDZt2oT//ve/eO+994xt9V+PwMBAnD17Vo7y3MrVq1fxxhtvoGPHjjh16hTmz5+Pfv368fdDJt26dcPw4cNx5513Ijg4GDt27MD777/P18OGGGqawdPT02QFSF9fX5SXl8tUkXt744030KJFC0yaNImvjUwqKyvx1FNPYcmSJQgICDC21389+Fo4RlZWFq5du4ZNmzZhzpw5+PXXX1FWVoZ//etf/P2Qwe7du/H9999j586duHLlCsaMGYNHHnmEf69siKGmGUJDQ3Hx4kVJW1lZGby9vWWqyH1t3LgRixYtwsqVK+Hl5cXXRiZvvfUWYmJiMGTIEEl7/deDr4VjFBYWIjY2Fq1btwZgCJc9e/bElStX+Pshg1Wr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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "预测房价（100平米）：[204.52137372]万元\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from sklearn.linear_model import LinearRegression\n",
    "from sklearn.model_selection  import train_test_split\n",
    "from sklearn.metrics import mean_squared_error\n",
    "\n",
    "# 房价预测\n",
    "\n",
    "plt.rcParams['font.sans-serif'] = ['SimHei']\n",
    "plt.rcParams['axes.unicode_minus'] = False\n",
    "\n",
    "# 准备数据集\n",
    "X = np.array([[i] for i in range(100)])\n",
    "y = np.array([[i * 2 + np.random.randint(0, 10)] for i in range(100)])\n",
    "\n",
    "# 划分数据集（80%训练集，20%测试集）\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)\n",
    "\n",
    "# 创建线性回归模型\n",
    "model = LinearRegression()\n",
    "\n",
    "model.fit(X_train, y_train)\n",
    "\n",
    "# 输出模型参数权重和截距\n",
    "print(f'权重：{model.intercept_}')\n",
    "print(f'截距：{model.coef_}')\n",
    "\n",
    "# 评估模型：计算均方误差\n",
    "mes = mean_squared_error(y_test, model.predict(X_test))\n",
    "print(f'均方误差：{mes:.2f}')\n",
    "\n",
    "# 可视化\n",
    "plt.scatter(X_test, y_test, color='blue', label='Data points')\n",
    "plt.plot(X_test, model.predict(X_test), color='red', label='Linear Regression')\n",
    "plt.xlabel('房屋面积')\n",
    "plt.ylabel('房价')\n",
    "plt.legend()\n",
    "plt.show()\n",
    "\n",
    "# 使用模型进行新的预测\n",
    "new_data = np.array([[100], [200], [300]])\n",
    "predictions = model.predict(new_data)\n",
    "print(f'预测房价（100平米）：{predictions[0]}万元')\n",
    "\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "main",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
